This disclosure is related to the field of data processing technologies, and particularly to data processing methods systems based on a cluster.
As the computer and network technologies continuously develop, the ever-increasing processing demand and requirement for reliability of servers can no longer be satisfied by simply enhancing the hardware performance of the servers. Under this circumstance, cluster computing technology has gradually received widespread attention and use. A cluster refers to a kind of parallel or distributed system made up by a number of integrated computing devices (such as personal computers and servers) and used as a unified computing resource. If one of the servers in the cluster has failed to function, other servers within the same cluster could take over its services and jobs to provide a highly reliable network service. Furthermore, by using cluster computing technology, the load originally taken by a single server can be shared by other servers in the same cluster. This greatly increases the processing power of the system.
A cluster is formed by servers b0, b1, . . . bi and a load-balancing device. After receiving an external processing request, the load-balancing device selects a server from the cluster using a certain strategy based on physical aspects of the system to provide service to the outside. The selection, for example, may be based on current network connection of a server in the cluster. Under normal conditions, each server in the cluster provides a similar service. However, sometimes different servers may play different roles to provide different services. For instance, server b0 may handle data of major customers, while servers b1 and b2 may deal with data of general customers. In this case, as server b0 sends one or multiple sets of data containing a unique identity to the external server, the external server returns data of the processing result containing the same unique identity, requesting the returned data to be still processed by the same server b0.
In order to correctly return the processed data to the relevant server b0 in the above process, the usual practice in existing technology is to maintain network connection between external server and the cluster server b0 after the external server receives the data from the cluster server b0. Upon completing the processing, the server can then return the processing result to the server b0 directly through the maintained network link. However, this places a burden of network connection on the external server. This problem becomes more prominent when there are many targets to be served by the external server. An excessive number of network connections greatly consumes the resources of the external server and reduces its processing capabilities.
Therefore, new designs are desirable that can help correctly transmit the processed data from an external server to a relevant server in the cluster is an ongoing problem commonly faced in the field of cluster computing technology.